#ifndef LOGINWINDOW_H
#define LOGINWINDOW_H

#include "MainWindow.h"
#include <QWidget>
#include <QIcon>

#include "src/QtTcp/xdgTcpClient.h"


namespace Ui {
class LoginWindow;
}

class LoginWindow : public QWidget
{
    Q_OBJECT

public:
    /**
     * @brief 构造函数。
     * @param client 共享的 xdgTcpClient 实例。
     */
    explicit LoginWindow(xdgTcpClient* client, QWidget* parent = nullptr);
    ~LoginWindow();


private slots:
    /**
     * @brief [槽] TCP 客户端连接成功。
     */
    void onClientConnected();

    /**
     * @brief [槽] TCP 客户端连接断开。
     */
    void onClientDisconnected();

    /**
     * @brief [槽] 收到来自服务器的消息。
     */
    void onMessageReceived(const QByteArray& message);



private slots:
    void onLoginClicked();      // 登录按钮
    void onRegisterClicked();   // 注册按钮
    void onGoRegisterClicked(); // 跳转注册按钮
    void onGoLoginClicked();    // 跳转登录按钮
    void onUserEditingFinished();  // 用户名输入框失去焦点
    void onUser2EditingFinished(); // 注册用户名输入框失去焦点


private:
    Ui::LoginWindow *ui;

    MainWindow* m_mainWindow;
    xdgTcpClient* m_client;

};

#endif // LOGINWINDOW_H
